package com.zhentao.payment.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhentao.payment.entity.RefundOrder;

import java.math.BigDecimal;

/**
 * 退款服务接口
 */
public interface RefundService extends IService<RefundOrder> {
    /**
     * 创建退款申请
     *
     * @param orderNo 原支付订单编号
     * @param amount  退款金额
     * @param reason  退款原因
     * @return 创建的退款记录信息
     */
    RefundOrder createRefund(String orderNo, Double amount, String reason);

    /**
     * 查询退款申请
     *
     * @param refundNo 退款单号
     * @return 退款申请信息
     */
    RefundOrder queryRefund(String refundNo);

    /**
     * 同意退款申请
     *
     * @param refundNo 退款单号
     */
    void approveRefund(String refundNo);

    /**
     * 拒绝退款申请
     *
     * @param refundNo 退款单号
     */
    void rejectRefund(String refundNo);

    /**
     * 分页查询退款记录列表
     */
    IPage<RefundOrder> queryRefundList(String refundNo, String orderNo, Integer status, Integer page, Integer size);
}
